Database Tutorials PHP দিয়ে Database Restore করা গাইড ও নোট

294

ডেটাবেস রিস্টোর করা একটি গুরুত্বপূর্ণ কার্যক্রম, যা ডেটাবেসে ভুল তথ্য বা ডেটা নষ্ট হয়ে গেলে তা পুনরুদ্ধার করতে সহায়তা করে। MySQL ডেটাবেসের জন্য ব্যাকআপ তৈরি করা এবং সেগুলি পুনরুদ্ধার (restore) করা পিএইচপি অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি প্রয়োজনীয় অংশ হতে পারে। এই প্রক্রিয়া সাধারণত MySQL Dump ফাইলের মাধ্যমে করা হয়, যা একটি SQL স্ক্রিপ্ট ফাইল হিসেবে ডেটাবেসের সকল ডেটা এবং স্ট্রাকচার সেভ করে।

পিএইচপি দিয়ে ডেটাবেস রিস্টোর করার জন্য আপনাকে MySQL Dump ফাইলটি আপলোড করতে হবে এবং তারপর পিএইচপি স্ক্রিপ্টের মাধ্যমে সেই ডাম্প ফাইলটি রান করতে হবে।


১. ব্যাকআপ ফাইল প্রস্তুত করা

MySQL ব্যাকআপ ফাইল সাধারণত .sql এক্সটেনশনে থাকে এবং এতে ডেটাবেসের স্কিমা, টেবিল স্ট্রাকচার, ডেটা ইত্যাদি থাকে। আপনি যদি আগে থেকেই MySQL Dump ফাইল তৈরি করে থাকেন, তাহলে আপনি সেই ফাইলটি রিস্টোর করতে পারবেন।

ব্যাকআপ তৈরি করার জন্য সাধারণত নিচের কমান্ড ব্যবহার করা হয়:

mysqldump -u username -p database_name > backup_file.sql

এখানে,

  • username : MySQL ব্যবহারকারীর নাম
  • database_name : ডেটাবেসের নাম
  • backup_file.sql : ব্যাকআপ ফাইলের নাম

২. PHP স্ক্রিপ্টের মাধ্যমে Database Restore করা

পিএইচপি স্ক্রিপ্টের মাধ্যমে ডেটাবেস রিস্টোর করতে হবে। প্রথমে আপনাকে ব্যাকআপ ফাইলটি আপলোড করতে হবে এবং তারপর পিএইচপি স্ক্রিপ্টের মাধ্যমে ডাম্প ফাইলের SQL কুয়েরিগুলো এক্সিকিউট করতে হবে।

স্টেপ ১: ফাইল আপলোড

<?php
if (isset($_POST['submit'])) {
    $upload_dir = 'uploads/';
    $uploaded_file = $upload_dir . basename($_FILES['backup_file']['name']);

    if (move_uploaded_file($_FILES['backup_file']['tmp_name'], $uploaded_file)) {
        echo "ফাইল আপলোড সফলভাবে হয়েছে!";
    } else {
        echo "ফাইল আপলোডে সমস্যা হয়েছে!";
    }
}
?>

<form method="post" enctype="multipart/form-data">
    <input type="file" name="backup_file" />
    <input type="submit" name="submit" value="Upload Backup" />
</form>

এই স্ক্রিপ্টটি ব্যাকআপ ফাইল আপলোড করার জন্য একটি ফর্ম তৈরি করে। আপলোড করা ফাইলটি uploads/ ডিরেক্টরিতে সেভ হবে।

স্টেপ ২: ডেটাবেস রিস্টোর

ব্যাকআপ ফাইল আপলোড হওয়ার পর, পিএইচপি স্ক্রিপ্টের মাধ্যমে সেই ফাইলের SQL কমান্ডগুলো রিস্টোর করতে হবে।

<?php
// ডেটাবেস কনফিগারেশন
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'your_database_name';

// ডাটাবেস সংযোগ স্থাপন
$conn = new mysqli($host, $username, $password, $dbname);

if ($conn->connect_error) {
    die("ডেটাবেসে সংযোগ ব্যর্থ: " . $conn->connect_error);
}

if (isset($_POST['submit'])) {
    $backup_file = $_FILES['backup_file']['tmp_name'];

    // ব্যাকআপ ফাইল পড়া
    $sql = file_get_contents($backup_file);

    // SQL কমান্ডগুলো রান করা
    if ($conn->multi_query($sql)) {
        echo "ডেটাবেস সফলভাবে রিস্টোর করা হয়েছে!";
    } else {
        echo "ডেটাবেস রিস্টোর করতে ব্যর্থ হয়েছে: " . $conn->error;
    }
}

$conn->close();
?>

<form method="post" enctype="multipart/form-data">
    <input type="file" name="backup_file" />
    <input type="submit" name="submit" value="Restore Database" />
</form>

স্ক্রিপ্টের ব্যাখ্যা:

  1. ডেটাবেস কনফিগারেশন: পিএইচপি স্ক্রিপ্টে ডেটাবেসের নাম, ইউজারনেম এবং পাসওয়ার্ড কনফিগার করা আছে।
  2. ফাইল পড়া: file_get_contents() ফাংশন দিয়ে আপলোড করা .sql ফাইলটি পড়া হয়।
  3. SQL কোড এক্সিকিউট: multi_query() ফাংশন দিয়ে SQL কোডগুলো একসাথে এক্সিকিউট করা হয়। এটি সঠিকভাবে .sql ফাইল থেকে ডেটাবেস কমান্ডগুলো রান করবে এবং ডেটাবেস রিস্টোর হবে।

৩. PHP দিয়ে MySQL Dump File Validate করা

ডেটাবেস রিস্টোর করার আগে, আপলোড করা .sql ফাইলটি একটি নির্দিষ্ট ফর্ম্যাটে রয়েছে কিনা এবং নিরাপদ কিনা তা যাচাই করা গুরুত্বপূর্ণ। নিচে কিছু নিরাপত্তা পদ্ধতি দেওয়া হল:

ফাইল এক্সটেনশন চেক:

$file_extension = pathinfo($_FILES['backup_file']['name'], PATHINFO_EXTENSION);

if ($file_extension !== 'sql') {
    echo "অনুগ্রহ করে একটি SQL ফাইল আপলোড করুন!";
    exit;
}

ফাইলের আকার চেক:

$file_size = $_FILES['backup_file']['size'];

if ($file_size > 10 * 1024 * 1024) { // 10MB
    echo "ফাইল আকারটি বড়, অনুগ্রহ করে ছোট আকারের ফাইল আপলোড করুন!";
    exit;
}

সারাংশ

পিএইচপি দিয়ে MySQL ডেটাবেস রিস্টোর করার প্রক্রিয়াটি বেশ সরল, তবে নিরাপত্তা এবং ফাইল যাচাই অত্যন্ত গুরুত্বপূর্ণ। ব্যাকআপ ফাইলটি প্রথমে আপলোড করতে হয় এবং তারপর পিএইচপি স্ক্রিপ্টের মাধ্যমে SQL কোডগুলো ডেটাবেসে রান করিয়ে রিস্টোর প্রক্রিয়া সম্পন্ন করা হয়। এটি ডেটাবেস ব্যাকআপ এবং রিস্টোর প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...